模版语法
文本插值
一句话记忆:使用双括号包裹一个变量,如 {{ name }}
打开 Basic.vue
文件,我们可以在 template
标签下编写一些 HTML 内容。
<template>
<h1>三木</h1>
</template>
页面展示内容如下。
但是有些情况下,需要展示Js
的变量,比如我们希望这个名称可能是动态变化的,比如未来从数据库中获取。
我们将template
增加 <h1>名称是:{{ name }}</h1>
,其中的name
用双括号包裹,这样就表示这里的name
是一个变量
script
增加data
属性,将name
赋值三木
,完整代码如下
<script>
export default {
name: 'Basic',
data() {
return {
name: '三木',
};
},
};
</script>
<template>
<h1>三木</h1>
<h1>名称是:{{ name }}</h1>
</template>
<style scoped></style>
此时我们的页面展示如下,名称是后面的“三木”,是通过变量name
动态获取的。
原始 HTML
一句话记忆:v-html 等于一段 html 代码
双大括号会将变量转换为纯文本,但有时我们希望显示转义后的 html
代码。这时,需要使用 v-html
进行绑定。
比如,给 data 增加一个属性
data() {
return {
...
html: "<h1>我是三木</h1>",
};
},
template 增加以下代码
<template>
... {{ html }}
<div v-html="html"></div>
</template>
此时我们页面结果如下:第一段代码将 HTML 标签字符串化,第二段代码会显示成h1
的样式。
Attribute 绑定
一句话记忆:给 dom 节点增加属性
我们可以给 dom 增加任意的属性,比如 id、name、age 等等,只要在属性之前增加v-bind
即可,
<div v-bind:id="2"></div>
<div v-bind:name="name"></div>
id
写死一个值是2
,name
绑定了前面data
下面的 name 变量,再看看HTML
的DOM
的展示结果如下
代码改成如下
<div :id="2"></div>
<div :name="name"></div>
JS 表达式
除了,可以在双括号中绑定一些简单的属性,还可以支持单一表达式
{{ number + 1 }} {{ ok ? 'YES' : 'NO' }} {{ message.split('').reverse().join('')
}}
<div :id="`list-${id}`"></div>
{{ formatDate(date) }}